In distributed computing, a client computer program can cause a procedure (subroutine) to execute in another address space. The other address space can be associated with a server computer on a shared network. The subroutine can be coded using a same syntax as a local procedure call, without the programmer needing to code details for the remote interaction. That is, the programmer can write essentially the same code whether the subroutine is local to the executing program, or remote. The subroutine call can be implemented using a request-response message-passing system.